﻿#region << 文 件 说 明 >>
/*----------------------------------------------------------------
// 文件名称：BaseSingleton
// 创 建 人：YangCheng
// 创建时间：2022/5/24 19:18:31
// 文件版本：V1.0.0
// ===============================================================
// 功能描述：
//		
//
//----------------------------------------------------------------*/
#endregion

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Vampirewal.Core.VContainer
{
    /// <summary>
    /// 所有使用单例模式的基类，需要被继承
    /// </summary>
    /// <typeparam name="T">填写类的名称</typeparam>
    public class BaseSingleton<T>  where T : class, new()
    {
        private static T _instance;
        private static object _objLock = new object();
        public static T GetInstance()
        {

            if (_instance == null)
            {
                lock (_objLock)
                {
                    if (_instance == null)
                    {
                        _instance = new T();
                    }
                }
            }
            return _instance;
        }
    }
}
